document.write("<script src=\"" + context
		+ "/app/cell/js/sellist.js\"></script>");
document.write("<script src=\"" + context
		+ "/system/wordbook/js/wbstore.js\"></script>");
document.write("<script src=\"" + context
		+ "/system/tablequery/js/tablehandler.js\"></script>");


document.write("<script src=\"" + context
		+ "/system/group/js/groupcombo.js\"></script>");
document.write('<link type="text/css" rel="stylesheet" href="' + context
		+ '/system/group/css/groupmanage.css"/>');

var querykey = 'list';
var listPageSize = 10;
var showchk = false;
var ds;

var chkColumModel = [];
chkColumModel.push({
			'header' : '&nbsp;',
			'dataIndex' : 'PAGINATION_NUMBER',
			sortable : true,
			clazz : 'PAGINATION_NUMBER'
		});
chkColumModel.push({
			'header' : '监理标段名称',
			'dataIndex' : 'SVBD_NAME',
			sortable : true,
			clazz : '',
			renderer : renderHeader
		});
chkColumModel.push({
			'header' : '监理单位',
			'dataIndex' : 'SVBD_GROUP',
			sortable : true,
			clazz : 'SVBD_GROUP',
			renderer : renderHeader
		});
chkColumModel.push({
			'header' : '设计单元',
			'dataIndex' : 'C_NAME',
			sortable : true,
			clazz : '',
			renderer : renderHeader
		});
chkColumModel.push({
			'header' : '建管模式',
			'dataIndex' : 'C_TYPE',
			sortable : true,
			clazz : 'C_TYPE',
			renderer : renderHeader
		});
chkColumModel.push({
			'header' : '标段名称',
			'dataIndex' : 'CB_NAME',
			sortable : true,
			clazz : '',
			renderer : renderHeader
		});

var cm = new Ext.grid.ColumnModel(chkColumModel);

var fields = ['PAGINATION_NUMBER', 'ID', 'SVBD_NAME', 'SVBD_GROUP',
		'SVBD_GROUPID', 'C_NAME', 'C_TYPE', 'C_AREA', 'CB_ID', 'CB_NAME'];

function initQueryList() {
	var toolbar = new Ext.Toolbar({
		id : querykey + '_toolbar',
		autoWidth : true,
		autoShow : true,
		items : [{
			iconCls : 'query',
			text : '数据查询',
			handler : function() {
				var groupTree = getGroupSelectCombo('监理单位', 'groupId',
						'groupName', '', true);

				var queryForm = new Ext.FormPanel({
							labelWidth : 100, // label settings here cascade
							// unless
							// overridden
							frame : false,
							bodyStyle : 'padding:5px 5px 0',
							width : 350,
							defaults : {
								width : 230
							},
							defaultType : 'textfield',

							items : [{
										fieldLabel : '监理标段名称',
										id : 'cname',
										name : 'cname'
									}, groupTree, {
										xtype : 'hidden',
										name : 'groupId',
										id : 'groupId'
									}, {
										xtype : 'hidden',
										name : 'groupName',
										id : 'groupName'
									}]
						});

				var formUrl = context + '/system/result4form.jsp?1=1';

				if ($('cname_')) {
					formUrl += '&cname=' + $('cname_').value;
				}

				if ($('groupId_')) {
					formUrl += '&groupId=' + $('groupId_').value;
				}

				if ($('groupName_')) {
					formUrl += '&groupName=' + $('groupName_').value;
					formUrl += '&_gname=' + $('groupName_').value;
				}

				queryForm.getForm().load({
							url : encodeURI(formUrl),
							waitTitle : '提示',
							waitMsg : '正在加载数据,请稍候...',
							animEl : "loding",
							success : function(form, action) {

							},
							failure : function(form, action) {
								Ext.Msg.alert('初始化查询项失败');
							}
						});

				var queryWin = new Ext.Window({
					renderTo : Ext.getBody(),
					layout : 'fit',
					width : 450,
					height : 300,
					title : '数据查询',
					resizable : true,
					plain : true,
					modal : true,

					items : [queryForm],

					buttons : [{
						id : 'objectQueryButton',
						text : '查 询',
						handler : function() {
							createHidden('cname_', queryForm.form
											.findField('cname').getValue());
							createHidden('groupId_', queryForm.form
											.findField('groupId').getValue());
							createHidden('groupName_', queryForm.form
											.findField('groupName').getValue());

							ds.reload({
										params : getQueryTestParams(),
										callback : function(r, options, success) {
											initInfoList(r, options, success);
										}
									});
							queryWin.close();
						}
					}, {
						text : '重 置',
						handler : function() {
							queryForm.form.reset();
						}
					}, {
						text : '关 闭',
						handler : function() {
							queryWin.close();
							// queryObjectTestWin =
							// null;
							// queryWin = null;
						}
					}]
				});

				queryWin.show(this);
			}
		}, '-', {
			text : '定义监理标段',
			iconCls : 'add',
			handler : function() {
				var cellist = bdsellist('设计单元/标段', 'nubdid', 'nubd', '', false);

				var groupTree = getGroupSelectCombo('监理单位', 'groupId',
						'groupName', '', false);

				var neuForm = new Ext.FormPanel({
							labelWidth : 100, // label settings here
							// cascade
							// unless
							// overridden
							frame : false,
							bodyStyle : 'padding:5px 5px 0',
							width : 350,
							defaults : {
								width : 230
							},
							defaultType : 'textfield',

							items : [{
										fieldLabel : '监理标段名称',
										id : 'cname',
										name : 'cname',
										xtype : 'textarea',
										allowBlank : false
									}, groupTree, cellist, {
										xtype : 'hidden',
										name : 'nubdid',
										id : 'nubdid'
									}, {
										xtype : 'hidden',
										name : 'nubd',
										id : 'nubd'
									}, {
										xtype : 'hidden',
										name : 'groupId',
										id : 'groupId'
									}, {
										xtype : 'hidden',
										name : 'groupName',
										id : 'groupName'
									}]
						});
				var win = new Ext.Window({
					renderTo : Ext.getBody(),
					layout : 'fit',
					width : 450,
					height : 250,
					title : '监理标段定义',
					resizable : true,
					plain : true,
					modal : true,

					items : [neuForm],

					buttons : [{
						id : 'saveButton',
						text : '保 存',
						handler : function() {
							if (neuForm.getForm().isValid()) {
								createHidden('ID', '');
								createHidden('SVBD_NAME', neuForm.getForm()
												.findField('cname').getValue());
								createHidden('SVBD_GROUPID', neuForm.getForm()
												.findField('groupId')
												.getValue());
								createHidden('SVBD_GROUPNAME', neuForm
												.getForm()
												.findField('groupName')
												.getValue());

								var ids = neuForm.getForm().findField('nubdid')
										.getValue();
								var names = neuForm.getForm().findField('nubd')
										.getValue();

								var idstr = ids.split(',');
								var namestr = names.split(',');
								var counterName = '';

								for (var i = 0; i < idstr.length; i++) {
									createHidden('CB_ID_' + i, idstr[i]);
									counterName += i + ',';
								}

								createHidden('counterName', counterName);

								saveTable('APP_NS_SVBD,APP_NS_SVBDITEM',
										'single,multi', '-1,counterName', null,
										function() {
											win.close();

											ds.reload({
														params : getQueryTestParams(),
														callback : function(r,
																options,
																success) {
															initInfoList(r,
																	options,
																	success);
														}
													});
										});
							}
						}
					}, {
						text : '关 闭',
						handler : function() {
							win.close();
						}
					}]
				});

				win.show(this);
			}
		}]
	});

	toolbar.addClass('ExtToolBar');

	toolbar.render('listToolbarArea');

	ds = new Ext.data.JsonStore({
				idProperty : 'PAGINATION_NUMBER',
				remoteSort : false,
				totalProperty : 'totalCount',
				root : 'queryList',
				fields : fields,
				proxy : new Ext.data.HttpProxy({
							url : context + '/app/jlbdaction.do?method=list'
						})
			});

	/* 设置自定义参数 */
	ds.on('beforeload', function(thiz, options) {
				var params = getQueryTestParams();
				Ext.apply(thiz.baseParams, params);
			});

	storeOnLoad(0);
}

function getQueryTestParams() {
	return {
		start : 0,
		limit : listPageSize,
		cname : $('cname_') ? $('cname_').value : '',
		cunit : $('groupId_') ? $('groupId_').value : ''
	};
}

function storeOnLoad(start) {
	Ext.MessageBox.wait('加载数据过程中...');

	ds.load({
				params : {
					start : start,
					limit : listPageSize
				},
				callback : function(r, options, success) {
					initInfoList(r, options, success);
				}
			});
}

function storeReload(start) {
	Ext.MessageBox.wait('加载数据过程中...');

	ds.reload({
				params : {
					start : start,
					limit : listPageSize
				},
				callback : function(r, options, success) {
					initInfoList(r, options, success);
				}
			});
}

function gridReload() {
	ds.reload({
				params : getQueryTestParams(),
				callback : function(r, options, success) {
					initInfoList(r, options, success);
				}
			});
}

function initInfoList(r, options, success) {
	if (success == false) {
		Ext.Msg.alert('ERROR', '加载数据出现异常.');
	} else {
		var total = ds.getCount();// 数据行数

		while ($(querykey).rows.length > 1) {
			$(querykey).deleteRow($(querykey).rows.length - 1);
		}

		var arr = [];
		for (var j = 0; j < total; j++) {
			var record = ds.getAt(j);

			var tr = $(querykey).insertRow($(querykey).rows.length);

			var i = 0;
			Ext.each(chkColumModel, function(item) {
				var td = tr.insertCell(i);
				td.className = item.clazz;
				if (showchk && i == 0) {
					td.innerHTML = '<div class="divn"><input type="checkbox" name="chkitem" value="'
							+ j
							+ '">&nbsp;'
							+ renderHeader(record.data[item.dataIndex], cm,
									record, j, i, ds) + '</div>';
				} else {
					td.innerHTML = renderHeader(record.data[item.dataIndex],
							cm, record, j, i, ds);
				}

				i++;
			});
		}

		var ys = ds.getTotalCount() % listPageSize;

		var sh = parseInt(ds.getTotalCount() / listPageSize);

		var totalPage = (ys == 0 ? sh : sh + 1);

		var pageNO = parseInt(options.params.start / options.params.limit) + 1;

		var str1 = '共' + ds.getTotalCount() + '条数据';

		if (ds.getTotalCount() > 0) {
			str1 += ',第' + pageNO + '/' + totalPage + '页';
		}

		$('pageDisplay').innerHTML = str1;

		var str = '';

		if (pageNO > 1) {
			str += '<a href="javascript:storeReload(\'0\');">首页</a>';
		} else if (totalPage > 1) {
			str += '首页';
		}

		if (pageNO > 1) {
			var start = listPageSize * (pageNO - 2)

			str += '&nbsp;<a href="javascript:storeReload(\'' + start
					+ '\');">上一页</a>';
		}

		if (pageNO < totalPage) {
			var start = listPageSize * pageNO

			str += '&nbsp;<a href="javascript:storeReload(\'' + start
					+ '\');">下一页</a>';
		}

		if (pageNO < totalPage) {
			var start = listPageSize * (totalPage - 1)

			str += '&nbsp;<a href="javascript:storeReload(\'' + start
					+ '\');">尾页</a>';
		} else if (pageNO == totalPage && pageNO > 1) {
			str += '尾页';
		}

		$('pageRoll').innerHTML = str;

		Ext.MessageBox.hide();
	}
}

function renderHeader(value, cellmeta, record, rowIndex, columnIndex, store) {
	var fieldName = cm.getDataIndex(columnIndex);
	if (fieldName == 'CB_ID') {
		return '<div class="divn" style="width:200px;" title="' + value + '">'
				+ value + '</div>';
	} else if (fieldName == 'SVBD_NAME') {
		var str = '<div class="divn"><a title="编辑监理标段信息" href="javascript:handleEdit(\''
				+ rowIndex + '\');">' + value + '</a></div>';

		return str;
	} else if (fieldName == 'ID') {
		var str = '<div class="divn"><a href="javascript:void(0);" onClick="javascript:purview(\''
				+ value
				+ '\', \''
				+ record.data['SVBD_NAME']
				+ '\');">权限设置</a>';

		return str;
	} else {
		return '<div class="divn">' + value + '</div>';
	}
	return value;
}

function handleDelete(id) {
	Ext.MessageBox.confirm('提示', '确定删除该设计单元？', function(e) {
				if (e == "yes") {
					Ext.MessageBox.wait('数据删除过程中...');
					Ext.Ajax.request({
								// 请求地址
								url : context
										+ '/app/cellaction.do?method=delete',
								params : {
									id : id
								},
								// 成功时回调
								success : function(response, options) {
									// 获取响应的json字符串
									Ext.MessageBox.hide();

									var json = response.responseText;
									var o = Ext.util.JSON.decode(json);

									if (o.success) {
										ds.reload({
													params : getQueryTestParams(),
													callback : function(r,
															options, success) {
														initInfoList(r,
																options,
																success);
													}
												});
									} else {
										Ext.Msg.alert('提示', '数据删除失败！');
									}
								},
								failure : function(rs, request) {
									Ext.Msg.alert('提示', '未知的异常错误');
								}
							});
				}
			});
}

function handleView(id, name) {
	var queryForm = new Ext.FormPanel({
				labelWidth : 75, // label settings here cascade
				// unless
				// overridden
				frame : false,
				bodyStyle : 'padding:5px 5px 0',
				width : 350,
				defaults : {
					width : 230
				},
				defaultType : 'textfield',

				items : [{
							fieldLabel : '监理人员',
							id : 'uname',
							name : 'uname',
							readOnly : true
						}, {
							fieldLabel : '监理单位',
							id : 'unit',
							name : 'unit',
							readOnly : true
						}, {
							fieldLabel : '性别',
							id : 'sex',
							name : 'sex',
							readOnly : true
						}, {
							fieldLabel : '联系电话',
							id : 'uphone',
							name : 'uphone',
							readOnly : true
						}]
			});

	var queryWin = new Ext.Window({
				renderTo : Ext.getBody(),
				layout : 'fit',
				width : 450,
				height : 300,
				title : name + ' 监理状况查询',
				resizable : true,
				plain : true,
				modal : true,

				items : [queryForm],

				listeners : {
					show : function(w) {
						var formUrl = context
								+ '/app/cellaction.do?method=svstatus&bdid='
								+ id;

						queryForm.getForm().load({
							url : encodeURI(formUrl),
							waitTitle : '提示',
							waitMsg : '正在加载数据,请稍候...',
							animEl : "loding",
							success : function(form, action) {

							},
							failure : function(form, action) {
								queryWin.close();
								if (action.result.errCode
										&& action.result.errCode == '-1') {
									Ext.MessageBox.show({
												title : '提示',
												msg : '<' + name + '> 尚不存在监理人员',
												icon : Ext.MessageBox.WARNING
											});
								} else {
									Ext.MessageBox.show({
												title : '未知的错误',
												msg : action.response.responseText,
												icon : Ext.MessageBox.ERROR
											});
								}
							}
						});
					}
				},

				buttons : [{
							text : '关 闭',
							handler : function() {
								queryWin.close();
								// queryObjectTestWin =
								// null;
								// queryWin = null;
							}
						}]
			});

	queryWin.show(this);
}

function purview(id, name) {
	var plist = purviewlist(id, name, 'svbd', 'APP_NS_SVBD', 'bdjlpurview', ''
					+ name + '');

	var purviewWin = new Ext.Window({
				title : '监理单位权限设置',
				renderTo : Ext.getBody(),
				layout : 'fit',
				width : 600,
				height : 400,
				resizable : true,
				plain : true,
				modal : true,
				closable : true,

				items : [plist]
			});

	purviewWin.show(this);
}

/**
 * 编辑单元标段信息
 * 
 * @param {}
 *            id 单元标段ID
 */
function handleEdit(idx) {
	var record = ds.getAt(idx);

	var cellist = bdsellist('设计单元/标段', 'nubdid', 'nubd',
			record.data['CB_NAME'], false);

	var groupTree = getGroupSelectCombo('监理单位', 'groupId', 'groupName', '',
			false);

	var editForm = new Ext.FormPanel({
				labelWidth : 100, // label settings here
				// cascade
				// unless
				// overridden
				frame : false,
				bodyStyle : 'padding:5px 5px 0',
				width : 350,
				defaults : {
					width : 230
				},
				defaultType : 'textfield',

				items : [{
							fieldLabel : '监理标段名称',
							id : 'cname',
							name : 'cname',
							xtype : 'textarea',
							allowBlank : false,
							value : record.data['SVBD_NAME']
						}, groupTree, cellist, {
							xtype : 'hidden',
							name : 'nubdid',
							id : 'nubdid',
							value : record.data['CB_ID']
						}, {
							xtype : 'hidden',
							name : 'nubd',
							id : 'nubd',
							value : record.data['CB_NAME']
						}, {
							xtype : 'hidden',
							name : 'groupId',
							id : 'groupId',
							value : record.data['SVBD_GROUPID']
						}, {
							xtype : 'hidden',
							name : 'groupName',
							id : 'groupName',
							value : record.data['SVBD_GROUPNAME']
						}]
			});

	var formUrl = context + '/system/result4form.jsp?1=1';

	formUrl += '&nubdid_=' + record.data['C_NAME'] + ' : '
			+ record.data['CB_NAME'];

	formUrl += '&_gname=' + record.data['SVBD_GROUP'];

	editForm.getForm().load({
				url : encodeURI(formUrl),
				waitTitle : '提示',
				waitMsg : '正在加载数据,请稍候...',
				animEl : "loding",
				success : function(form, action) {

				},
				failure : function(form, action) {
					Ext.Msg.alert('初始化单元标段信息失败');
				}
			});

	var win = new Ext.Window({
		renderTo : Ext.getBody(),
		layout : 'fit',
		width : 450,
		height : 250,
		title : '监理标段信息编辑',
		resizable : true,
		plain : true,
		modal : true,

		items : [editForm],

		buttons : [{
			id : 'saveButton',
			text : '保 存',
			handler : function() {
				if (editForm.getForm().isValid()) {
					createHidden('ID', record.data['ID']);
					createHidden('SVBD_NAME', editForm.getForm()
									.findField('cname').getValue());
					createHidden('SVBD_GROUPID', editForm.getForm()
									.findField('groupId').getValue());
					createHidden('SVBD_GROUPNAME', editForm.getForm()
									.findField('groupName').getValue());

					var ids = editForm.getForm().findField('nubdid').getValue();
					var names = editForm.getForm().findField('nubd').getValue();

					var idstr = ids.split(',');
					var namestr = names.split(',');
					var counterName = '';

					for (var i = 0; i < idstr.length; i++) {
						createHidden('ID_' + i, record.data['ID']);
						createHidden('CB_ID_' + i, idstr[i]);
						counterName += i + ',';
					}

					createHidden('counterName', counterName);

					Ext.getCmp('saveButton').setDisabled(true);

					Ext.MessageBox.wait('提交保存过程中...');

					Ext.Ajax.request({
								// 请求地址
								url : context
										+ "/app/jlbdaction.do?method=update",
								params : {},
								// 提交参数组
								fileUpload : true,
								form : 'form1',
								scope : 'form1',
								// 成功时回调
								success : function(response, options) {
									// 获取响应的json字符串
									Ext.MessageBox.hide();

									var json = response.responseText;
									var o = Ext.util.JSON.decode(json);

									if (o.success) {
										Ext.Msg.alert('提示', '已成功更新监理标段信息！');
										gridReload();
										win.close();
									} else {
										Ext.Msg.alert('提示', '更新监理标段信息失败！');
										Ext.getCmp('saveButton')
												.setDisabled(false);
									}
								},
								failure : function(form, action) {
									Ext.MessageBox.hide();
									Ext.getCmp('saveButton').setDisabled(false);
									Ext.Msg.alert('提示', '更新监理标段信息发生错误！');
								}
							});

				}
			}
		}, {
			id : 'delButton',
			text : '删 除',
			handler : function() {
				Ext.MessageBox.confirm('提示', '确定删除该监理标段？', function(e) {
					if (e == "yes") {
						Ext.getCmp('delButton').setDisabled(true);

						Ext.MessageBox.wait('提交保存过程中...');

						createHidden('ID', record.data['ID']);

						Ext.Ajax.request({
									// 请求地址
									url : context
											+ "/app/jlbdaction.do?method=delete",
									params : {},
									// 提交参数组
									fileUpload : true,
									form : 'form1',
									scope : 'form1',
									// 成功时回调
									success : function(response, options) {
										// 获取响应的json字符串
										Ext.MessageBox.hide();

										var json = response.responseText;
										var o = Ext.util.JSON.decode(json);

										if (o.success) {
											Ext.Msg.alert('提示', '已成功删除监理标段信息！');
											gridReload();
											win.close();
										} else {
											Ext.Msg.alert('提示', '删除监理标段信息失败！');
											Ext.getCmp('delButton')
													.setDisabled(false);
										}
									},
									failure : function(form, action) {
										Ext.MessageBox.hide();
										Ext.getCmp('delButton')
												.setDisabled(false);
										Ext.Msg.alert('提示', '删除监理标段信息发生错误！');
									}
								});
					}
				});
			}
		}, {
			text : '关 闭',
			handler : function() {
				win.close();
			}
		}]
	});

	win.show(this);
}